package algorithm_study.leecode;

import java.util.Arrays;

public class NextRank {
    public static void nextPermutation(int[] nums) {
        int count=nums.length-1;
        //特殊判断
        if(count<=0){
            return;
        }
        //从最后面找到第一个(3)12 3 54
        while(count>0&&nums[count-1]>=nums[count]){
            count--;
        }
        //如果是找遍了说明到了最后
        if(count==0){
            Arrays.sort(nums);
            return;
        }
        //    int temp=nums[count-1];
        //     nums[count-1]=nums[nums.length-1];
        //     nums[nums.length-1]=temp;
        //     if(count==nums.length-1){
        //         return;
        //     }
        Arrays.sort(nums,count,nums.length);
        for(int i=count;i<nums.length;i++){
            //找到排序后第一个大于count-1位置的数
            if(nums[i]>nums[count-1]){
                //交换
                int temp=nums[count-1];
                nums[count-1]=nums[i];
                nums[i]=temp;
            }
        }
        for (int i : nums) {
            System.out.print(i);
        }
        return;

    }

    public static void main(String[] args) {
         int[]t={1,3,2};
         nextPermutation(t);
    }
}
